package ifrn.pds;

import ifrn.pds.siem.banco.Pesquisa;
import ifrn.pds.siem.ementa.Corpo;
import ifrn.pds.siem.ementa.Ementa;
import ifrn.pds.siem.ementa.Identificacao;
import ifrn.pds.siem.ementa.InfoAdicionais;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@SuppressWarnings("serial")
public class ServletPesquisa extends HttpServlet {
	Identificacao id = new Identificacao();
	Corpo corpo = new Corpo();
	InfoAdicionais info = new InfoAdicionais();
	Ementa ementa = new Ementa(id, corpo, info);

	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		req.setCharacterEncoding("ISO-8859-1");
		HttpSession sessao = req.getSession(true);
		pesquisaRapida(req, resp, sessao);

	}

	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		req.getRequestDispatcher("index-rapida.jsp").forward(req, resp);	

	}

	private void pesquisaRapida(HttpServletRequest req,
			HttpServletResponse resp, HttpSession sessao)
			throws ServletException, IOException {
		String busca = req.getParameter("palavras-chave");
		String botao = req.getParameter("botaopesquisa");
		if (botao.equals("Pesquisar")) {
			Pesquisa pesquisa = new Pesquisa();
			if (busca.equals("")) {
				req.setAttribute("err", "Digite uma busca.");
				req.getRequestDispatcher("index-rapida.jsp").forward(req, resp);
			} else {
				ArrayList<Ementa> ementas = pesquisa.pesquisaRapida(busca);
				ArrayList<String> resultados = new ArrayList<String>();
				ArrayList<Integer> ids = new ArrayList<Integer>();
				req.setAttribute("result", "<b>Resultados:</b><hr />");
				for (int i = 0; i < ementas.size(); i++) {
					resultados.add(" <label style=\"margin-left: 1px\"><b>Disciplina: </b>"
							+ ementas.get(i).getIdentificacao().getDisciplina()
							+"</label><br />"+ "  " + "<label style=\"margin-left: 27px\"><b>Curso:</b> "
							+ ementas.get(i).getIdentificacao().getCurso()+"</label>");
					ids.add(ementas.get(i).getIdentificacao().getId());
				}
				sessao.setAttribute("ids", ids);
				if(resultados.size()==0){
					req.setAttribute("resultados", null);
					req.setAttribute("sms", "Nenhum resultado encontrado!");}
				else
					req.setAttribute("resultados", resultados);
				req.getRequestDispatcher("index-rapida.jsp").forward(req, resp);
			}

		}
	}

}
